//es5
function Person(firstName , lastName , age , address){
	this.firstName = firstName;
	this.lastName = lastName;
	this.age = age;
	this.address = address;
}

Person.self = function() {
	return this;
}

Person.prototype.toString = function() {
	return "[object Person]";
}

Person.prototype.getFullName = function() {
	return this.firstName + " " + this.lastName;
}

//es6
class Person {
	constructor(firstName , lastName , age , address) {
	    this.lastName = lastName;
		this.firstName = firstName;
		this.age = age;
		this.address = address;
	}
	
	static self() {
		return this;
	}
	
	ToString() {
		return "[object Person]";
	}
	
	getFullName() {
		return `${this.firstName} ${this.lastName}`;
	}
}



class Something {

}

function AnotherSomething(){

}
const as = new AnotherSomething();
const s = new Something();

console.log(typeof Something); // "function"
console.log(typeof AnotherSomething); // "function"
console.log(as.toString()); // "[object Object]"
console.log(as.toString()); // "[object Object]"
console.log(as.toString === Object.prototype.toString); // true
console.log(s.toString === Object.prototype.toString); // true



